空间计算 Sample详情
最后更新时间:2019年7月5日
移动端支持对几何要素的空间计算功能,如提供计算两点距离、计算两区距离、计算直线角度、计算两线交点等接口。
计算两个MGSDot点之间的距离。
double pointDistance=[MGSSpaCalculator distanceDot0:dot1 dot1:dot2];
计算线段的角度。
//获取线的坐标点 MGSDot dot1=[_graphicPolylinA getPointAtIndex:0]; MGSDot dot2=[_graphicPolylinA getPointAtIndex:1]; //计算线段的角度 double angle=[MGSSpaCalculator angle2PIDot0:dot1 dot1:dot2];
计算两条线的所有交点。
//获取两条线的几何对象,可由图形对象转换而来 MGSGeoVarLine *line1=(MGSGeoVarLine *)[MGSGraphic toGeometryWithGraphic:graphicPolylinA]; MGSGeoVarLine *line2=(MGSGeoVarLine *)[MGSGraphic toGeometryWithGraphic:graphicPolylinB]; //计算两条线的交点(返回值为NSValue的数组) NSArray *result=[MGSSpaCalculator calLinesIntersLine1:line1 line2:line2]; //获取数组中第一个要素 NSValue *value1=[result objectAtIndex:0]; //解包,得到点 CGPoint point=[value1 CGPointValue];
计算两个几何对象之间的距离,以两区之间距离计算为例。
double polygonDistance=[MGSSpaCalculator distanceGeom1:geopolygon1 geom2:geopolygon2 distanceType:Min];
计算对象之间距离时,对象可以为点、线、区、多线、多区,并且计算的距离类型由MGSDistanceType提供,可以为:
它们之间所支持的计算类型如下表所示:
计算对象 | 点 | 线 | 区(单圈) | 多线 | 多区 |
---|---|---|---|---|---|
点 | min|max | min | min|max | 不支持 | 不支持 |
线 | min | min|max | 不支持 | 不支持 | 不支持 |
区(单圈) | min|max | 不支持 | min | 不支持 | 不支持 |
多线 | min | min|max | 不支持 | 不支持 | 不支持 |
多区 | min|max | 不支持 | min | 不支持 | 不支持 |
例如两区之间的距离计算效果如下图所示: